﻿using System.Collections;

namespace _1_1
{
    class Product
    {
        string name;
        public string Name { get { return name; } }

        decimal price;
        public decimal Price { get { return price; } }

        public Product(string name, decimal price)
        {
            this.name = name;
            this.price = price;
        }

        public static ArrayList GetSampleProducts()
        {
            ArrayList list = new ArrayList();
            list.Add(new Product("West Side Story", 9.99m));
            list.Add(new Product("Assassins", 14.99m));
            list.Add(new Product("Frogs", 13.99m));
            list.Add(new Product("Sweeny", 10.99m));
            return list;
        }

        public override string ToString()
        {
            return string.Format("{0}: {1}", name, price);
        }
    }
}
//ArrayList没有提供与其内部内容有关的编译时信息。不慎在GetSampleProducts创建的列表中添加一个字符串是完全有可能的，而编译器对此没有任何反应。
//代码中为属性提供了公共的取值方法，这意味着如果添加对应的赋值方法，那么赋值方法也必须是公共的。
//用于创建属性和变量的代码很复杂————封装一个字符串和一个十进制数应该是一个身份简单的任务，不该这么复杂。